﻿using System;

using Microsoft.Build.Framework;

namespace KubertSoft.MSBuildTasks.Subversion.Svn
{
    /// <summary>
    /// Print information about PATHs.
    /// </summary>
    class SvnInfo : SvnClientTaskBase
    {
        /// <summary>
        /// Tells Subversion to get the list of files that you wish to operate on from the filename 
        /// you provide instead of listing all the files on the command line.
        /// </summary>
        ITaskItem Targets 
        {
            get { return InputTaskItems.GetRequired(CommandLineSwitches.Targets); }
            set { InputTaskItems.RegisterTaskItem(CommandLineSwitches.Targets, value); }
        }

        /// <summary>
        /// Makes this command recurse into subdirectories
        /// </summary>
        ITaskItem Recursive
        {
            get { return InputTaskItems.GetOptional(CommandLineSwitches.Recursive); }
            set { InputTaskItems.RegisterTaskItem(CommandLineSwitches.Recursive, value); }
        }

        /// <summary>
        /// Instructs Subversion to read configuration information from the specified directory 
        /// instead of the default location (.subversion in the user's home directory).
        /// </summary>
        ITaskItem ConfigDir
        {
            get { return InputTaskItems.GetOptional(CommandLineSwitches.ConfigDir); }
            set { InputTaskItems.RegisterTaskItem(CommandLineSwitches.ConfigDir, value); }
        }
        
        /// <summary>
        /// Gets the command.
        /// </summary>
        /// <value>The command.</value>
        protected override string Command
        {
            get { throw new NotImplementedException(); }
        }

        /// <summary>
        /// Initializes input parameters.
        /// </summary>
        protected internal override void InitializeInputParameters()
        {
            throw new NotImplementedException();
        }

        /// <summary>
        /// Initializes output parameters.
        /// </summary>
        protected internal override void InitializeOutputParameters()
        {
            throw new NotImplementedException();
        }
    }
}
